// import 导入 js 文件要用相对路径。
import { axios } from '../../request/myAxios';

Page({

  // 页面数据
  data: {
    swiperList: [],
    navList: [],
    floorList: [],
    showTop: false
  },

  // 在 onLoad 生命周期函数中发起请求
  onLoad() {
    // 通过封装的 axios 库发送请求
    // 1.0 轮播图数据
    // 传统写法：
    // axios({ url: '/home/swiperdata' })
    // 简化写法：
    const p1 = axios.get('/home/swiperdata')
      .then(res => {
        // 把路径的 main 替换成 index ，让轮播图能跳转 
        res.forEach(item=>{
          item.navigator_url = item.navigator_url.replace('/main','/index');
        });
        // 更新视图
        this.setData({
          swiperList: res
        });
      });

    // 2.0 首页导航分类
    const p2 = axios({ url: '/home/catitems' })
      .then(res => {
        // console.log(res);
        this.setData({
          navList: res
        });
      });

    // 3.0 首页楼层
    const p3 = axios({ url: '/home/floordata' })
      .then(res => {
        // console.log(res);
        const newRes = res.map((item, index) => {
          return {
            id: index,    // 自己重新映射一下数组
            floor_title: item.floor_title,
            product_list: item.product_list,
          };
        });
        this.setData({
          floorList: newRes
        });
      });

    // 把三个请求返回的 Promise 对象都接收，为 Promise.all() 准备
    // 当 3 个 promise 请求都成功的时候，才会执行 Promise.all() 的 then 回调函数。 
    Promise.all([p1, p2, p3]).then(res=>{
      wx.stopPullDownRefresh();
    });

    // // 类似 $.ajax() 用法
    // wx.request({
    //   url: 'https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata',
    //   success: (result) => {
    //     // console.log(result.data.message);
    //     this.setData({
    //       swiperList: result.data.message
    //     })
    //   },
    //   fail: () => {},
    //   complete: () => {}
    // });




  },

  // 首页楼层图片跳转到列表页
  goToPageList(e) {
    // e.currentTarget  代表绑定事件的元素
    // console.log(e.currentTarget);
    let { url, type } = e.currentTarget.dataset;
    // 用 ? 把链接拆成数组
    const urlArr = url.split('?');
    // 给数组索引值1的位置加入 '/index?'
    urlArr.splice(1, 0, '/index?');
    // console.log(urlArr);   // ["/pages/goods_list", "/index?", "query=热"]
    // console.log(url, type);
    if (type === 'navigate') {
      // 用于跳转普通页
      wx.navigateTo({
        url: urlArr.join('')   // 数组转成字符串链接
      });
    }
  },

  // 页面事件 - 下拉动作
  onPullDownRefresh() {
    this.setData({
      swiperList: [],
      navList: [],
      floorList: []
    });
    // console.log('用户下拉动作监听');
    this.onLoad();
  },

  // 当页面滚动的时候触发
  onPageScroll({ scrollTop }) {
    this.setData({
      // 如果滚动超过 100 就显示返回顶部按钮，否则隐藏下拉按钮
      showTop: scrollTop >= 100 ? true : false
    });
  }
});